﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using hardvinyp.xrm;

namespace SolutionExporterhardvin_y_p
{
    public partial class Login : Form
    {
        public Login()
        {
            InitializeComponent();
        }
        bool nueva = true;

        private void btnConect_Click(object sender, EventArgs e)
        {
            try
            {
                if (txtClave.Text != string.Empty && txtNomcon.Text != string.Empty && txtUsuario.Text != string.Empty
                    && txtDominio.Text != string.Empty && txtOservice.Text != string.Empty)
                {
                    TConexion conexion = new TConexion();
                    if (lbConexiones.SelectedItem != null)
                    {
                        conexion = (TConexion)lbConexiones.SelectedItem;
                        conexion.Dominio = txtDominio.Text;
                        conexion.Rutaservicio = txtOservice.Text;
                        conexion.Usuario = txtUsuario.Text;
                        conexion.Nueva = true;
                        Comunes.Conexion = conexion;

                        Comunes communes = new Comunes();
                        communes.GuardarCadenaConexion();
                    }
                    else
                    {
                        conexion.Nombreconexion = txtNomcon.Text;
                        conexion.Dominio = txtDominio.Text;
                        conexion.Rutaservicio = txtOservice.Text;
                        conexion.Usuario = txtUsuario.Text;
                        conexion.Nueva = true;
                        Comunes.Conexion = conexion;
                        if (chkGuardar.Checked)
                        {
                            if (Comunes.Conexiones == null)
                            {
                                Comunes.Conexiones = new List<TConexion>();
                            }
                            Comunes.Conexiones.Add(conexion);

                            Comunes communes = new Comunes();
                            communes.GuardarCadenaConexion();
                        }
                    }

                    Inicio inic = new Inicio();
                    inic.Show();
                    this.Hide();
                }
                else
                {
                    MessageBox.Show("Todos los campos de este formulario son obligatorios, recuerde ingresarlos.");
                }
            }
            catch (Exception)
            {

            }
        }

        private void Login_Load(object sender, EventArgs e)
        {
            Comunes.Conexiones = new List<TConexion>();

            lbConexiones.ValueMember = "Nombreconexion";
            lbConexiones.DisplayMember = "Nombreconexion";

            Comunes cmn = new Comunes();
            Comunes.Conexiones = cmn.ListarConexiones();
            if (Comunes.Conexiones != null)
            {
                foreach (TConexion cn in Comunes.Conexiones)
                {
                    lbConexiones.Items.Add(cn);
                }
            }
        }

        private void lbConexiones_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                nueva = false;
                txtNomcon.Enabled = false;
                chkGuardar.Checked = true;
                chkGuardar.Enabled = false;

                TConexion cn = (TConexion)lbConexiones.SelectedItem;
                txtNomcon.Text = cn.Nombreconexion;
                txtDominio.Text = cn.Dominio;
                txtUsuario.Text = cn.Usuario;
                txtOservice.Text = cn.Rutaservicio;

            }
            catch (Exception)
            {
               
            }
        }

        private void btnNueva_Click(object sender, EventArgs e)
        {
            nueva = true;
            txtNomcon.Enabled = true;
            chkGuardar.Checked = false;
            chkGuardar.Enabled = true;

            lbConexiones.SelectedIndex = -1;
            txtNomcon.Text = string.Empty;
            txtDominio.Text = string.Empty;
            txtUsuario.Text = string.Empty;
            txtOservice.Text = string.Empty;
        }

        private void txtNomcon_Leave(object sender, EventArgs e)
        {
            if (nueva)
            {
                foreach (object it in lbConexiones.Items)
                {
                    TConexion cni = (TConexion)it;

                    if (cni.Nombreconexion.ToLower() == txtNomcon.Text.ToLower())
                    {
                        txtNomcon.Text = string.Empty;
                        txtNomcon.Focus();
                        MessageBox.Show("Ya existe una conexion con este nombre");
                        return;
                    }
                }
            }
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            if (lbConexiones.SelectedItem != null)
            {
                TConexion sol = (TConexion)lbConexiones.SelectedItem;
                Comunes.Conexiones.Remove(sol);
                lbConexiones.Items.Remove(lbConexiones.SelectedItem);

                Comunes communes = new Comunes();
                communes.GuardarCadenaConexion();
            }
        }

    }
}
